Add ini-file to initialization.
authoroliskoli <oliskoli@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Sun, 16 Apr 2006 10:35:45 +0000 (10:35 +0000)
committeroliskoli <oliskoli@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Sun, 16 Apr 2006 10:35:45 +0000 (10:35 +0000)
gpsbabel/win32/gui-2/common.pas

index 0dcdddb8e31ee9d56212025ff95ca50ea840cc90..80baf50b888ce7a75dbcde58b8e05ceb5ac1f859 100644 (file)
@@ -31,8 +31,12 @@ const
   gpsbabel_ini: TInifile = nil;\r
   \r
 resourcestring\r
-  SGPSBabelURL = 'http://www.gpsbabel.org';\r
-  SGPSBabelTitle = 'GPSBabelGUI-2';\r
+  SGPSBabelURL =         'http://www.gpsbabel.org';\r
+  SGPSBabelTitle =       'GPSBabelGUI-2';\r
+\r
+const\r
+  SGPSBabelIniFilename = 'gpsbabel.ini';\r
+  SGPSBabelExeFilename = 'gpsbabel.exe';\r
 \r
 var\r
   gpsbabel_exe: string;\r
@@ -41,6 +45,7 @@ var
   gpsbabel_minor, gpsbabel_major, gpsbabel_release: Integer;\r
   SGPSBabelGUIVersion: string;\r
   CFixedFileinfo: TVSFixedFileInfo;\r
+  gpsbabel_inifile: TInifile;\r
 \r
 const\r
   WM_STARTUP = WM_USER + 1;\r
@@ -97,7 +102,8 @@ type
     name:   string;\r
     hint:   string;\r
     otype:  Byte;\r
-    def:    PChar;\r
+    def:    PChar;       // default value from gpsbabel or ini-file\r
+    gbdef:  PChar;       // default value from gpsbabel       \r
     min:    PChar;\r
     max:    PChar;\r
     chb:    TCheckBox;\r
@@ -222,6 +228,7 @@ var
   opt: POption;\r
   list: TStringList;\r
   i: Integer;\r
+  s: string;\r
 begin\r
   StrPCopy(buff, ALine);\r
   StrCat(buff, #9);\r
@@ -245,7 +252,12 @@ begin
       1:\r
         opt.format := string(cin);\r
       2:\r
-        opt.name := string(cin);\r
+        begin\r
+          opt.name := string(cin);\r
+          s := gpsbabel_ini.ReadString(opt.Format, opt.Name, #01);\r
+          if (s <> #01) then\r
+            opt.def := StrNew(PChar(s));\r
+        end;\r
       3:\r
         opt.hint := string(cin);\r
       4:\r
@@ -257,7 +269,11 @@ begin
           end;\r
       5:\r
         if (cin^ <> #0) then\r
-          opt.def := StrNew(cin);\r
+        begin\r
+          opt.gbdef := StrNew(cin);\r
+          if (opt.def = nil) then\r
+            opt.def := opt.gbdef;\r
+        end;\r
       6:\r
         if (cin^ <> #0) then\r
           opt.min := StrNew(cin);\r
@@ -521,9 +537,23 @@ begin
   end;\r
 end;\r
 \r
+function Open_gpsbabel_ini(): TInifile;\r
+var\r
+  s: string;\r
+begin\r
+  s := SysUtils.ExpandFileName(SGPSBabelIniFilename);\r
+  if not(SysUtils.FileExists(s)) then\r
+    s := SysUtils.ExtractFilePath(ParamStr(0)) + SGPSBabelIniFilename;\r
+  if not(SysUtils.FileExists(s)) then\r
+    Result := TIniFile.Create(SGPSBabelIniFilename)\r
+  else\r
+    Result := TIniFile.Create(s)\r
+end;\r
+\r
 initialization\r
 \r
-  gpsbabel_exe := SysUtils.ExtractFilePath(ParamStr(0)) + 'gpsbabel.exe';\r
+  gpsbabel_exe := SysUtils.ExtractFilePath(ParamStr(0)) + SGPSBabelExeFilename;\r
   SGPSBabelGUIVersion := GetFileVersion(ParamStr(0));\r
+  gpsbabel_ini := Open_gpsbabel_ini();\r
 \r
 end.\r